// var User = require('../models/user');
// exports.getUser = function(req, res) {
//     var userid = req.params.userid;
//     var user = new User();
//     user.find(userid,function(err,result){
//         if(err){
//             res.send('没有找到userid为'+userid+'的任务');
//         }
//         else if(undefined!=result){ // 增加这个判断，否则在没有查询到的情况下，Node.js会挂掉
//             res.send(result.length === 1 ? result[0]:result);
//         }
//         else{
//             res.end("Error");
//         }
//     });
// };
var db = require('../config/basicConnection');
var $sqlCommands = require('../config/sqlCommand');
var formidable = require('formidable'),
    fs = require('fs');

/**
 * 查找全部产品
 */
function findAllAction(req,res,next){
    db.query($sqlCommands.prod_status.findAll,
        function(err, result) {
            if(err){
                result = {
                    msg:'failed'
                };
            }
            // 以json形式，把操作结果返回给前台页面
            // console.log(result)
            db.doReturn(res, result)
        }
    );
}
// 查找某产品
function findByName(req,res,next){
    // 获取前台页面传过来的参数
    var param = req.body || req.params || req.query;
    // 执行Query
    // console.log(param.name)
    db.queryArgs($sqlCommands.prod_status.findByName,
        ['%' + param.name + '%'],
        function(err, result) {
            if(err){
                console.log(err)
            }
            // 以json形式，把操作结果返回给前台页面
            db.doReturn(res, result);
        }
    );
}

// 改动某产品信息
function updateById(req,res,next){
    var up='';
    var form = formidable.IncomingForm({
        encoding: 'utf-8',//上传编码
        uploadDir: process.cwd()+"/public/files/prod/",//上传目录，指的是服务器的路径，如果不存在将会报错。
        keepExtensions: true,//保留后缀
        // maxFieldsSize: 2 * 1024 * 1024//byte//最大可上传大小
    });
    console.log(process.cwd())
    form.parse(req,function(error, fields, files) {
        // console.log()
        var types = files.file.name.split('.');
        var date = new Date();
        var ms = Date.parse(date);
        var newName = ms + "." + String(types[types.length - 1])
        var user = fields
        up = form.uploadDir + newName
        // console.log(up)
        var name = "../" + up.split('/')[up.split('/').length - 2] + '/' + up.split('/')[up.split('/').length - 1]
        // console.log(name)
        fs.renameSync(files.file.path, form.uploadDir + newName);
        var d = JSON.parse(fields.fields)[0]
        d.icon = "files/" + up.split('/')[up.split('/').length - 2] + '/' + up.split('/')[up.split('/').length - 1]
        // console.log(d)
            db.queryArgs($sqlCommands.prod_status.updateById,
            [d.name,d.qty,d.icon,d.price,d.creationTime,d.description,d.color,d.spec,d.id],
            function(err, result){
                if(err){
                    console.log(err)
                }
                else{
                    res.json({
                        msg:"修改成功"
                    })
                }
                // db.doReturn(res, result);
            }
        );
    })
}

//删除某产品
function deteleProdById(req,res,next){
    var param = req.body||req.query || req.params;
    db.queryArgs($sqlCommands.prod_status.deteleProdById,
        [param.id],
        function(err, result){
            if(err){
                console.log(err)
            }
            db.doReturn(res, result);
        }
    );
}

// 增加产品
function insertOne(req, res, next){
    var param = req.body||req.query || req.params;
    // console.log(param)
    db.queryArgs($sqlCommands.prod_status.insertOne,
        [param.name,param.qty,param.icon,param.sales,param.price,param.creationTime,param.description,param.color,param.spec],
            function(err, result){
                if(err){
                    console.log(err)
                }
                else{
                    res.json({
                        msg:"插入成功"
                    })
                }
                // db.doReturn(res, result);
            }
    );
}

// 查找某产品
function findSpecItem(req,res,next){
    // 获取前台页面传过来的参数
    var param = req.body || req.params || req.query;
    // 执行Query
    db.queryArgs($sqlCommands.prod_status.findSpecItem,
        [param.id],
        function(err, result) {
            if(err){
                console.log(err)
            }
            // 以json形式，把操作结果返回给前台页面
            db.doReturn(res, result);
        }
    );
}
// 查找某产品
function findSpecItem(req,res,next){
    // 获取前台页面传过来的参数
    var param = req.body || req.params || req.query;
    // 执行Query
    db.queryArgs($sqlCommands.prod_status.findSpecItem,
        [param.id],
        function(err, result) {
            if(err){
                console.log(err)
            }
            // 以json形式，把操作结果返回给前台页面
            db.doReturn(res, result);
        }
    );
}

function findSpec(req,res,next){
    // 获取前台页面传过来的参数
    var param = req.body || req.params || req.query;
    // 执行Query
    db.queryArgs($sqlCommands.prod_status.findSpec,
        [param.id],
        function(err, result) {
            if(err){
                console.log(err)
            }
            // 以json形式，把操作结果返回给前台页面
            db.doReturn(res, result);
        }
    );
}

function findOneById(req,res,next){
    // 获取前台页面传过来的参数
    var param = req.body || req.params || req.query;
    // 执行Query
    db.queryArgs($sqlCommands.prod_status.findOneById,
        [param.id],
        function(err, result) {
            if(err){
                console.log(err)
            }
            // 以json形式，把操作结果返回给前台页面
            db.doReturn(res, result);
        }
    );
}


function findSpec(req,res,next){
    db.query($sqlCommands.prod_status.findSpec,
        function(err, result) {
            if(err){
                result = {
                    msg:'failed'
                };
            }
            // 以json形式，把操作结果返回给前台页面
            // console.log(result)
            db.doReturn(res, result)
        }
    );
}

// 增加产品
function insertOneSpec(req, res, next){
    var param = req.body||req.query || req.params;
    db.queryArgs($sqlCommands.prod_status.insertOneSpec,
        [param.color,param.spec],
        function(err, result){
            if(err){
                console.log(err)
            }
            else{
                res.json({
                    msg:"插入成功"
                })
            }
            // db.doReturn(res, result);
        }
    );
}

function updateIconById(req, res, next){
    var param = req.body||req.query || req.params;
    db.queryArgs($sqlCommands.prod_status.updateIconById,
        [param.icon,param.id],
        function(err, result){
            if(err){
                console.log(err)
            }
            else{
                res.json({
                    msg:"插入成功"
                })
            }
            // db.doReturn(res, result);
        }
    );
}

function up(req,res,next){
    var up='';
    var form = formidable.IncomingForm({
        encoding: 'utf-8',//上传编码
        uploadDir: process.cwd()+"/public/files/prod/",//上传目录，指的是服务器的路径，如果不存在将会报错。
        keepExtensions: true,//保留后缀
        // maxFieldsSize: 2 * 1024 * 1024//byte//最大可上传大小
    });
    form.parse(req,function(error, fields, files) {
        // console.log()
        var types = files.file.name.split('.');
        var date = new Date();
        var ms = Date.parse(date);
        var newName = ms + "." + String(types[types.length - 1])
        var user = fields
        up = form.uploadDir + newName
        // console.log(up)
        var name = "../" + up.split('/')[up.split('/').length - 2] + '/' + up.split('/')[up.split('/').length - 1]
        // console.log(name)
        fs.renameSync(files.file.path, form.uploadDir + newName);
        var d = JSON.parse(fields.fields)[0]
        d.icon = "files/" + up.split('/')[up.split('/').length - 2] + '/' + up.split('/')[up.split('/').length - 1]
        // console.log(d)
        db.queryArgs($sqlCommands.prod_status.insertOne,
            [d.name,d.qty,d.icon,d.sales,d.price,d.creationTime,d.description,d.color,d.spec],
            function(err, result){
                if(err){
                    console.log(err)
                }
                else{
                    res.json({
                        msg:"插入成功"
                    })
                }
                // db.doReturn(res, result);
            }
        );
    })
}

function updateByIdNophoto(req, res, next){
    var d = req.body||req.query || req.params;
    // console.log(d)
    db.queryArgs($sqlCommands.prod_status.updateById,
        [d.name,d.qty,d.icon,d.price,d.creationTime,d.description,d.color,d.spec,d.id],
        function(err, result){
            if(err){
                console.log(err)
            }
            else{
                res.json({
                    msg:"修改成功"
                })
            }
            // db.doReturn(res, result);
        }
    );
}

// exports
module.exports = {
    deteleProdById:deteleProdById,
    insertOne:insertOne,
    updateById:updateById,
    findAllAction:findAllAction,
    findByName:findByName,
    findSpecItem:findSpecItem,
    findSpec:findSpec,
    findOneById:findOneById,
    findSpec:findSpec,
    insertOneSpec:insertOneSpec,
    up:up,
    updateIconById:updateIconById,
    updateByIdNophoto:updateByIdNophoto
};
